3.4 - Příklad 4
Zadání
Vytvořte program, který porovná šířku dvou válečků a podle toho je přemístí na dané místo. Pokud jsou válečky stejně široké, přemístí je tak, aby nedošlo k jejich vzájemné kolizi. Pro definici bodů použíjte vlastní souřadný systém a rameno bude začínat a končit v pozici "savety".

Řešení
Nejprve si vytvoříme aplikaci na MCP panelu.
| 1. Po spuštění se na MCP panelu zobrazí hlavní nabídka. V této nabídce vyberte položku "Aplication manager" a potvrďte volbu klávesou enter nebo šipkou doprava. | 2. V nabídce "Aplication manager" vytvořte novou aplikaci stiskem tlačítka "New" (funkční klávesa F8). |
|---|---|
![]() |
![]() |
| 3. Do kolonky "Name" zadejte jmeno aplikace a potvrďte vytvoření aplikace tlačítkem "Ok" (funkční klávesa F8). | 4. Poté aplikaci můžete uložit tlačítkem "Save" (funkční klávesa F8). |
![]() |
![]() |
Nyní si vytvoříme vlastní souřadný systém s požadovanými body a bod bezpečí "safety".
| 1. Rozbalte nabídku vaší aplikace, dále "Global data" a zde najeďte šipkama na položku "world" a stiskněte tlačítko "New" (funkční klávesa F8). | 2. Nyní zadejte jméno vašeho souředného systému (například fFrame) a u položky "Type" změňte typ na "Frame". Nakonec potvrďte tlačítkem "Ok" (funkční klávesa F8). |
|---|---|
![]() |
![]() |
| 3. V dlaším okně, které se zobrazí, lze zadat souřadnice souřadného systému, ty však zadávat nebudeme, protože je budeme zadávat manuálně pomocí MCP panelu. Potvrďte tedy toto okno klávesou "Ok" (funkční klácesa F8). | 4. Stiskněte tlačítko pro pohyb "Frame" Pomocí tlačítek pro navigaci a pohyb nastavte rameno do požadované pozice, ve které bude počátek vašeho souřadného systému. |
![]() |
![]() |
| 7. Poté opět přejeďte do "Application manageru". Najeďte na souřadný systém který jste vytvořily a stiskněte tlačítko "Teac" (funkční klávesa F2). | 8. V tomto okně stiskněte u nabídky "Origin" (počátek souřadného systému) tlačítko "Here" (funkční klávesa F5) a potvrďte tlačítkem "Ok" (funkční klávesa F8). |
![]() |
![]() |
| 9. Vytvořte body v souřadného systému. Najeďte na vámi vytvořený souřadný systém a stiskněte tlačítko "New" (funkční klávesa F7). | 10. Zadejte název bodu a potvrďte tlačítkem "Ok". Tímto způsobem vytvoříte všechny potřebné body. A nakonec nezapomeňte aplikaci uložit tlačítkem "Save" (funkční klávesa F8). |
![]() |
![]() |
Učení pozice bodů je stejné jako v příkladu 1.
Psaní podprogramů
I. Psaní podprogramů přes MCP| 1. V nabídce "Application manager" rozbalte nabídku pro vaši aplikaci, šipkama najeďte na položku "Programs" a stiskněte tlačítko "New" (funkční klávesa F7). | 2. Zadejte název podprogramu a potvrďte tlačítkem "Ok" (funkční klávesa F8). |
|---|---|
![]() |
![]() |
| 3. V nabídce "Programs" najeďte na položku "Paramerers" a stiskněte tlačítko "New" (funkční klávesa F7). | 4. Zadejte název parametru, typ parametru zvolte "point" a "Passing" zvolte "by value" (parametr předávaný hodnotou). Poté potvrďte tlačítkem "Ok" (funkční klávesa F8). |
![]() |
![]() |
| 5. Stejný postup opakujte i pro druhý podprogram. | 6. Nyní můžeme začít psát kód jednotlivých podprogramů a programu "Start". Najeďte na podprogram a stiskněte tlačítko "Edit" (funkční klávesa F4). |
![]() |
![]() |
| 7. Napište zdrojový kód programu a aplikaci uložte tlačítkem "Save" (funkční klávesa F8). | |
![]() |
Načtení aplikace do počítače je stejné jako v prvním příkladu. Nejprve spustíte program SRS, v něm otevřete "Transfer manager" a nahrajete aplikaci do PC. Poté spusťte VAL3 Studio a otevřete vaši aplikaci.
Spuštění aplikace je stejné jako v předchozích příkladech.
Zdrojový kód
Program Start//bod savety
movej(savety, flange, mNomSpeed)
waitEndMove()
///////////////První váleček///////////////
//volej podprogram chyt
call chyt(pA)
//pokud je váleček větší položí jej na bod pV
if io:bIn2==true
call pust(pV)
vetsi=true
//jinak jej položí na bod pM
else
call pust(pM)
mensi=true
endIf
///////////////Druhý váleček///////////////
//volej podprogram chyt
call chyt(pB)
//testuje zda je váleček větší
if io:bIn2==true
//pokud byl předchozí váleček menší položí jej na pV
if mensi==true
call pust(pV)
//pokud byl předchozí váleček taky větší položí jej na pM (dva velké)
else
call pust(pM)
endIf
//pokud je váleček menší
else
//pokud byl předchozí váleček větší položí jej na pM
if vetsi==true
call pust(pM)
//pokud byl předchozí váleček menší položí jej na pV (dva malé)
else
call pust(pV)
endIf
endIf
//bod savety
movej(savety, flange, mNomSpeed)
waitEndMove()
end
//přesune se nad bod
movej(bod, flange, mNomSpeed)
waitEndMove()
//pokud jsou čelisti sevřené otevře je
if io:bIn1==false
io:bOut0=false
endIf
//přesune se k válečku
movel(appro(bod,{0,0,20,0,0,0}), flange, mNomSpeed)
waitEndMove()
//chytí váleček
io:bOut0=true
delay(1)
//posune se zpět nahoru
movel(appro(bod,{0,0,-20,0,0,0}), flange, mNomSpeed)
waitEndMove()
end
//přesune se nad bod
movej(bod, flange, mNomSpeed)
waitEndMove()
//pokud čelisti drží váleček
if io:bIn1==false
//přesune se k bodu
movel(appro(bod,{0,0,20,0,0,0}), flange, mNomSpeed)
waitEndMove()
//pustí váleček
io:bOut0=false
//posune se zpět nahoru
movel(appro(bod,{0,0,-20,0,0,0}), flange, mNomSpeed)
waitEndMove()
endIf
end
Příklad 4 je ke stažení zde
RS40B - uživatelský manuál























